#include <iostream>
#include <vector>
using namespace std;

bool visit[1000];
void dfs(vector< vector<int> > & map,int s,int v){
	visit[s] = true;
	if( s==v ) return;
	for(int i=0; i<map[s].size(); i++){
		int w = map[s][i];
		if( w!=v && !visit[w] ) dfs(map,w,v);
	}
}
int numberOfRepaired(vector< vector<int> > & map,int v){
	int cnt = 0;
	for(int i=0; i<map.size(); i++){
		if( !visit[i]){
			dfs(map,i,v);
			cnt++;
		}
	}
	return cnt-2;
}
int main(){
	//freopen("in.txt","in",stdin);
	int n,m,k;
	cin >> n >> m >> k;
	vector< vector<int> > map(n);
	for(int i=0; i<m; i++){
		int a,b;
		cin >> a >> b;
		map[a-1].push_back(b-1);
		map[b-1].push_back(a-1); 
	}
	for(int i=0; i<k; i++){
		int a;
		cin >> a;
		fill(visit,visit+1000,false);
		cout << numberOfRepaired(map,a-1) << endl;
	}
	return 0;
}
